package model.macro
{
	import model.micro.projectiles.ProjectileType;
	
	/**
	 */
	public class Weapon
	{
		/**Some basic weapons*/
		public static var SWORD:Weapon = new Weapon("Sword", 4, 7, 6, 2);
		public static var HALBERD:Weapon = new Weapon("Halberd", 10, 10, 9, 4);
		
		/**Ranged weapons*/
		//public static const LONGBOW:RangedWeapon = new RangedWeapon("Long Bow", 2, 2, 2, ProjectileType.ARROW, 3, 50, 2);
		//public static const CROSSBOW:RangedWeapon = new RangedWeapon("CrossBow", 2, 2, 2, ProjectileType.BOLT, 10, 40, 3);
		
		
		/** Name of the weapon. */
		private var _name:String;
		/** Range of the weapon. */
		private var _melee_range:int;
		/** Base damage that is influenced by the wielder */
		private var _melee_damage:int;
		/** Weight influences speed of unit and speed of attack */
		private var _weight:Number;
		/** Cost of weapon. */
		private var _cost:int;
		
		/**
		 * Create a new weapon
		 */
		public function Weapon(name:String, melee_range:int, melee_damage:int, weight:int, cost:int)
		{
			_name = name;
			_melee_range = melee_range;
			_melee_damage = melee_damage;
			_weight = weight;
			_cost = cost;
		}
		
		/**
		 * name
		 */
		public function get name():String
		{
			return _name;
		}
		
		/**
		 * range
		 */
		public function get range():int
		{
			return _melee_range;
		}
		
		/**
		 * damage
		 */
		public function get damage():int
		{
			return _melee_damage;
		}
		
		/**
		 * weight
		 */
		public function get weight():int
		{
			return _weight;
		}
		
		public function get cost():int 
		{
			return _cost;
		}
	}
}